home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / gnu-c / include / machine / float.h < prev    next >
C/C++ Source or Header  |  1994-02-22  |  4KB  |  96 lines

  1. /*
  2.  * Copyright (c) 1989 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  *    This product includes software developed by the University of
  16.  *    California, Berkeley and its contributors.
  17.  * 4. Neither the name of the University nor the names of its contributors
  18.  *    may be used to endorse or promote products derived from this software
  19.  *    without specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  *
  33.  *    @(#)float.h    7.1 (Berkeley) 5/8/90
  34.  */
  35.  
  36. #ifndef _MACHINE_FLOAT_H
  37. #define _MACHINE_FLOAT_H
  38.  
  39. #define FLT_RADIX    2        /* b */
  40. #define FLT_ROUNDS    1        /* FP addition rounds to nearest */
  41.  
  42. #define FLT_MANT_DIG    24        /* p */
  43. #define FLT_EPSILON    1.19209290E-07F    /* b**(1-p) */
  44. #define FLT_DIG        6        /* floor((p-1)*log10(b))+(b == 10) */
  45. #define FLT_MIN_EXP    -125        /* emin */
  46. #define FLT_MIN        1.17549435E-38F    /* b**(emin-1) */
  47. #define FLT_MIN_10_EXP    -37        /* ceil(log10(b**(emin-1))) */
  48. #define FLT_MAX_EXP    128        /* emax */
  49. #define FLT_MAX        3.40282347E+38F    /* (1-b**(-p))*b**emax */
  50. #define FLT_MAX_10_EXP    38        /* floor(log10((1-b**(-p))*b**emax)) */
  51.  
  52. #define DBL_MANT_DIG    53
  53. #define DBL_EPSILON    2.2204460492503131E-16
  54. #define DBL_DIG        15
  55. #define DBL_MIN_EXP    -1021
  56. #define DBL_MIN        2.225073858507201E-308
  57. #define DBL_MIN_10_EXP    -307
  58. #define DBL_MAX_EXP    1024
  59. #define DBL_MAX        1.797693134862316E+308
  60. /* #define DBL_MAX        (*(double *)(unsigned long []){0x7fefffff, 0xffffffff}) */
  61. #define DBL_MAX_10_EXP    308
  62.  
  63. #define LDBL_MANT_DIG    DBL_MANT_DIG
  64. #define LDBL_EPSILON    DBL_EPSILON
  65. #define LDBL_DIG    DBL_DIG
  66. #define LDBL_MIN_EXP    DBL_MIN_EXP
  67. #define LDBL_MIN    DBL_MIN
  68. #define LDBL_MIN_10_EXP    DBL_MIN_10_EXP
  69. #define LDBL_MAX_EXP    DBL_MAX_EXP
  70. #define LDBL_MAX    DBL_MAX
  71. #define LDBL_MAX_10_EXP    DBL_MAX_10_EXP
  72.  
  73. /* C++ support */
  74. #define MAXFLOAT    FLT_MAX
  75. #define MAXDOUBLE    DBL_MAX
  76. #define MINFLOAT    FLT_MIN
  77. #define MINDOUBLE    DBL_MIN
  78.  
  79. #define _IEEE        1
  80. #define _DEXPLEN    11
  81. #define _FEXPLEN    8
  82. #define _HIDDENBIT    1
  83.  
  84. #define DMINEXP        DBL_MIN_EXP
  85. #define FMINEXP        FLT_MIN_EXP
  86. #define DMAXEXP        DBL_MAX_EXP
  87. #define FMAXEXP        FLT_MAX_EXP
  88.  
  89. #define DSIGNIF        DBL_MANT_DIG
  90. #define FSIGNIF        FLT_MANT_DIG
  91.  
  92. #define DMAXPOWTWO  ((double)(1L << LONGBITS -2)*(1L << DSIGNIF - LONGBITS +1))
  93. #define FMAXPOWTWO  ((float)(1L << FSIGNIF - 1))
  94.  
  95. #endif /* _MACHINE_FLOAT_H */
  96.